script.Parent = owner.PlayerGui -- function Replicate(a:BasePart?) a:SetNetworkOwner(owner); local bv, bav = Instance.new("BodyVelocity", a), Instance.new("BodyAngularVelocity", a) bv.MaxForce = Vector3.one*1/0 bv.Velocity = Vector3.zero; bav.MaxTorque = Vector3.one*1/0; bav.AngularVelocity = Vector3.zero; end local Parts = Instance.new("Folder", owner.Character); Parts.Name = "Visualizer"; Parts.ChildAdded:Connect(function(Child) if Child:IsA("BasePart") then task.wait(); Replicate(Child); end end) local PartsS = 25; for i = 1, PartsS do local VisPart = Instance.new("Part") VisPart.Name = "VisPart"; VisPart.Material = Enum.Material.Neon; VisPart.Size = Vector3.new(2.3, 10, 0.1); VisPart.CanQuery = false; VisPart.CanCollide = false; VisPart.Massless = true; VisPart.CanTouch = false; VisPart.Parent = Parts end local Audio = Instance.new("Sound", owner.Character.Head); Audio.Name = "Audio"; Audio.Looped = true; Audio.Playing = true; Audio.SoundId = 'rbxassetid://9042675280' NLS([[ local Parts = owner.Character:WaitForChild('Visualizer'); local Render = {} for i, v in pairs(Parts:GetChildren()) do table.insert(Render, v); end function doLerp(a, b, c) return a + (b - a) * c end function QuadraticBez(t, p0, p1, p2) local lerp1 = doLerp(p0, p1, t) local lerp2 = doLerp(p1, p2, t) local finalLerp = doLerp(lerp1, lerp2, t) return finalLerp end local Half = math.ceil(100/2) Parts.ChildAdded:Connect(function(Child) task.wait() table.insert(Render, Child) end) local Audio = owner.Character.Head:WaitForChild("Audio"); local RunService = game:GetService("RunService"); local Lerp = 0 local Sin = 0 RunService.RenderStepped:Connect(function(dt) Lerp = doLerp(Lerp, Audio.PlaybackLoudness/25, 0.5) for i, v in pairs(Render) do local CF = owner.Character.Torso.CFrame; local Multi = 1-(math.clamp(math.abs(Half- (i+ (i<=Half and -1 or 1) ))/Half, 0.01,1)^2) Sin = doLerp(Sin, 10 * (math.cos(tick() * 1) / Lerp), 0.01) local YAlpha = QuadraticBez(((i/#Render)-(0.5%0.5))%1, -Sin, (-10+Lerp), -Sin) CF = CF:ToWorldSpace(CFrame.new((-((25/2)) + (i)), YAlpha, -4))*CFrame.Angles(0, 0, 0) v.CFrame = v.CFrame:Lerp(CF, game:GetService("TweenService"):GetValue((math.log(1.01 + math.sin(tick()) * (0.01/Lerp))) * (i>=Half and 0.5 or 1), Enum.EasingStyle.Elastic, Enum.EasingDirection.Out)) end end) ]], owner.PlayerGui)